using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("BIReport")]
	public class BIReport : MonoBehaviour
	{
		public enum TelemetryEvent
		{
			EVENT_GAMEPLAY_STUCK_DISCONNECT = 100,
			EVENT_PRESENCE_CHANGE = 101,
			EVENT_RETURNING_PLAYER_DECK_NOT_CREATED_TOO_MANY_DECKS = 1100,
			EVENT_CLIENT_COPIED_DECK = 1301
		}

		public static string BIURL => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "BIReport", "BIURL");

		public static string PROTO_MESSAGE_TYPE_CLIENT_TELEMETRY => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "BIReport", "PROTO_MESSAGE_TYPE_CLIENT_TELEMETRY");

		public static string PROTO_MESSAGE_TYPE_DATA_ONLY_PATCHING => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "BIReport", "PROTO_MESSAGE_TYPE_DATA_ONLY_PATCHING");

		public static string s_sessionId => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "BIReport", "s_sessionId");

		public BIReport(IntPtr address, string className)
			: base(address, className)
		{
		}

		public BIReport(IntPtr address)
			: this(address, "BIReport")
		{
		}

		public static BIReport Get()
		{
			return MonoClass.smethod_15<BIReport>(TritonHs.MainAssemblyPath, "", "BIReport", "Get", Array.Empty<object>());
		}

		public static double ConvertDateTimeToUnixEpoch(DateTime time)
		{
			return MonoClass.smethod_14<double>(TritonHs.MainAssemblyPath, "", "BIReport", "ConvertDateTimeToUnixEpoch", new object[1] { time });
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void BIReport_WillReset()
		{
			method_8("BIReport_WillReset");
		}

		public void Report_AppQuit()
		{
			method_8("Report_AppQuit");
		}

		public void GenerateSessionID()
		{
			method_8("GenerateSessionID");
		}
	}
}
